Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / Sideband.git / files / libs / able / examples / advertising_battery.py

Displaying Raw • Download


libs/able/examples/advertising_battery.py 1.9.5 (6c9e11e3) Text, 2.26 KB

T8b949e"""Advertise battery level, that degrades every second."""
Tff7b72from T7ee787kivyT7ee787.T7ee787app Tff7b72import Te6edf3App
Tff7b72from T7ee787kivyT7ee787.T7ee787clock Tff7b72import Te6edf3Clock
Tff7b72from T7ee787kivyT7ee787.T7ee787uixT7ee787.T7ee787label Tff7b72import Te6edf3Label

Tff7b72from T7ee787able Tff7b72import Te6edf3BluetoothDispatcher
Tff7b72from T7ee787able Tff7b72import Te6edf3advertising

T8b949e# Standard fully-qualified UUID for the Battery Service
Te6edf3BATTERY_SERVICE_UUID Tff7b72= Ta5d6ff"Ta5d6ff0000180f-0000-1000-8000-00805f9b34fbTa5d6ff"


Tff7b72class T56d364BatteryAdvertiserTb4b4b4(Te6edf3advertisingTff7b72.Td2a8ffAdvertiserTb4b4b4)Tb4b4b4:

Tff7b72def Td2a8ffon_advertising_startedTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3advertising_setTb4b4b4, Te6edf3tx_powerTb4b4b4, Te6edf3statusTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3status Tff7b72== Te6edf3advertisingTff7b72.Td2a8ffStatusTff7b72.Td2a8ffSUCCESSTb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffAdvertising is started successfullyTa5d6ff"Tb4b4b4)
Tff7b72elseTb4b4b4:
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffAdvertising start error status: Tffd700{Te6edf3statusTffd700}Ta5d6ff"Tb4b4b4)

Tff7b72def Td2a8ffon_advertising_stoppedTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3advertising_setTb4b4b4)Tb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffAdvertising stoppedTa5d6ff"Tb4b4b4)


Tff7b72class T56d364BatteryLabelTb4b4b4(Te6edf3LabelTb4b4b4)Tb4b4b4:
T8b949e"""Widget to control advertiser and show current battery level."""

Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ff_level Tff7b72= T79c0ff0
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffWaiting for advertising to start...Ta5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffadvertiser Tff7b72= Te6edf3BatteryAdvertiserTb4b4b4(
Te6edf3bleTff7b72=Te6edf3BluetoothDispatcherTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3dataTff7b72=Tff7b72selfTff7b72.Td2a8ffconstruct_dataTb4b4b4(Te6edf3levelTff7b72=T79c0ff100Tb4b4b4)Tb4b4b4,
Te6edf3intervalTff7b72=Te6edf3advertisingTff7b72.Td2a8ffIntervalTff7b72.Td2a8ffMIN
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffadvertiserTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_advertising_startedTff7b72=Tff7b72selfTff7b72.Td2a8ffon_startedTb4b4b4) T8b949e# bind to start of advertising
Tff7b72selfTff7b72.Td2a8ffadvertiserTff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffon_startedTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3advertiserTb4b4b4, Te6edf3advertising_setTb4b4b4, Te6edf3tx_powerTb4b4b4, Te6edf3statusTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3status Tff7b72== Te6edf3advertisingTff7b72.Td2a8ffStatusTff7b72.Td2a8ffSUCCESSTb4b4b4:
T8b949e# Advertising is started - update battery level every second
Tff7b72selfTff7b72.Td2a8ffclock Tff7b72= Te6edf3ClockTff7b72.Td2a8ffschedule_intervalTb4b4b4(Tff7b72selfTff7b72.Td2a8ffupdate_levelTb4b4b4, T79c0ff1Tb4b4b4)

Tff7b72def Td2a8ffupdate_levelTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3dtTb4b4b4)Tb4b4b4:
Te6edf3level Tff7b72= Tff7b72selfTff7b72.Td2a8ff_level Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ff_level Tff7b72- T79c0ff1Tb4b4b4) Tff7b72% T79c0ff101
Tff7b72selfTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3levelTb4b4b4)

Tff7b72if Te6edf3level Tff7b72> T79c0ff0Tb4b4b4:
T8b949e# Set new advertising data
Tff7b72selfTff7b72.Td2a8ffadvertiserTff7b72.Td2a8ffdata Tff7b72= Tff7b72selfTff7b72.Td2a8ffconstruct_dataTb4b4b4(Te6edf3levelTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclockTff7b72.Td2a8ffcancelTb4b4b4(Tb4b4b4)
T8b949e# Stop advertising
Tff7b72selfTff7b72.Td2a8ffadvertiserTff7b72.Td2a8ffstopTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffconstruct_dataTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3levelTb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3advertisingTff7b72.Td2a8ffAdvertiseDataTb4b4b4(
Te6edf3advertisingTff7b72.Td2a8ffDeviceNameTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3advertisingTff7b72.Td2a8ffTXPowerLevelTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3advertisingTff7b72.Td2a8ffServiceDataTb4b4b4(Te6edf3BATTERY_SERVICE_UUIDTb4b4b4, Tb4b4b4[Te6edf3levelTb4b4b4]Tb4b4b4)
Tb4b4b4)


Tff7b72class T56d364BatteryAppTb4b4b4(Te6edf3AppTb4b4b4)Tb4b4b4:

Tff7b72def Td2a8ffbuildTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3BatteryLabelTb4b4b4(Tb4b4b4)


Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff"Ta5d6ff__main__Ta5d6ff"Tb4b4b4:
Te6edf3BatteryAppTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffrunTb4b4b4(Tb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────